﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CAOS.Entity;
using CAOS.Context;

namespace CAOS.UnityOfWork
{
    public class UsuarioRepository : GenericRepository<Usuario>
    {
        public UsuarioRepository(CAOSContext context)
            : base(context)
        {
        }

        public override void Insert(Usuario entity)
        {
            if (this.Exists(p => p.Login.Equals(entity.Login, StringComparison.InvariantCultureIgnoreCase)))
            {
                throw new CAOSDALException("Já existe um usuário com o nome informado.");
            }

            base.Insert(entity);
        }

        public override void Update(Usuario entity)
        {
            if (this.Exists(u => u.UsuarioID != entity.UsuarioID && u.Login.Equals(entity.Login, StringComparison.InvariantCultureIgnoreCase)))
            {
                throw new CAOSDALException("Já existe um usuário com o nome informado.");
            }

            base.Update(entity);
        }
    }
}
